With the proliferation of network communications and bandwidth availability, remote applications have become a common occurrence. Instead of installing, maintaining, debugging, updating, and performing similar operations on a large number of client devices for the same application, the application may be executed in a single server with the client devices accessing it through individual sessions. The ability to serve multiple clients through a single application on a remote server reduces maintenance costs, eases update and problem solving operations, and reduces a need for requiring minimum system parameters from clients. For example, modern application codes are relatively large compared to older versions requiring larger memory and processing power for the executing machines. On the other hand, accessing a remotely executed application, a client device may not need to have the same system resources as it would need if the application was executed on the same client device.
Debugging an application executed on a remote server or service may be a challenging task. If the service handles multiple concurrent requests from clients, allowing the debugging to block other clients may degrade the user experience. Reliability and security are also concerns with concurrent debugging. When debugging of client processes are performed on a thread or process level, debugging operations may affect servicing of requests by other clients.